{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "0c3530f2",
   "metadata": {},
   "source": [
    "# 第一题 好友通信录\n",
    "- 如果想记录一下你的好友的通讯录，你使用什么数据结构?\n",
    "- 用ipynb文件记录一下你的python代码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "65ece039",
   "metadata": {},
   "outputs": [],
   "source": [
    "class AddressBook:\n",
    "    def __init__(self, name, addr, cellphone):\n",
    "        self.name = name\n",
    "        self.addr = addr\n",
    "        self.cellphone = cellphone"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd96df2a",
   "metadata": {},
   "source": [
    "# 第二题 与计算机抽牌玩牌的游戏\n",
    "- 计算机出牌，用户输入“”，判断输赢和平局"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "cd1b51a3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Input your face:ten\n",
      "my_face:  four\n",
      "your_face:  ten\n",
      "You win\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "faces=['two','three','four','five','six','seven','eight','nine','ten','jack','queen','king'\n",
    ",'ace']\n",
    "my_face = random.choice(faces)\n",
    "# your_face = random.choice(faces)\n",
    "your_face = input('Input your face:')\n",
    "print('my_face: ', my_face)\n",
    "print('your_face: ', your_face)\n",
    "if faces.index(my_face) > faces.index(your_face):\n",
    "    print('I win')\n",
    "elif faces.index(my_face) < faces.index(your_face):\n",
    "    print('You win')\n",
    "else:\n",
    "    print('Draw game')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "560da2a4",
   "metadata": {},
   "source": [
    "# 第三题\n",
    "给定一个list，保存了一组整数，求出这组数平方后的结果，保存在list中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "a6b02db3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([100.  , 400.  ,   4.41])"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "a = np.array([10, 20, 2.1])\n",
    "b = a * a\n",
    "display(b)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f85b4c98",
   "metadata": {},
   "source": [
    "# 第四题\n",
    "- 与计算机玩“石头，剪刀，布”的游戏\n",
    "- 计算机出“手势”，用户输入“”，判断输赢和平局 \n",
    "- 用户输入”quit”，结束游戏"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "64233c8c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Rock crushes scissors. Scissors cut paper. Paper covers rock.\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: rock\n",
      "Draw game\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: rock\n",
      "Draw game\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: scissors\n",
      "player win\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: rock\n",
      "Draw game\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: rock\n",
      "Draw game\n",
      "Do you want to be rock, paper or scissors (or quit)?rock\n",
      "player: rock\n",
      "computer: paper\n",
      "computer win\n",
      "Do you want to be rock, paper or scissors (or quit)?paper\n",
      "player: paper\n",
      "computer: rock\n",
      "player win\n",
      "Do you want to be rock, paper or scissors (or quit)?quit\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "choices = ['rock', 'paper', 'scissors']\n",
    "print('Rock crushes scissors. Scissors cut paper. Paper covers rock.')\n",
    "\n",
    "while True:\n",
    "    computer = random.choice(choices)\n",
    "    player = input('Do you want to be rock, paper or scissors (or quit)?')\n",
    "    if player == 'quit':\n",
    "        break\n",
    "    \n",
    "    print('player:', player)\n",
    "    print('computer:', computer)\n",
    "    \n",
    "    player_index = choices.index(player)\n",
    "    computer_index = choices.index(computer)\n",
    "    if player_index == computer_index:\n",
    "        print('Draw game')\n",
    "    elif player_index == (computer_index + 1) % 3:\n",
    "        print('player win')\n",
    "    else:\n",
    "        print('computer win')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5a49864",
   "metadata": {},
   "source": [
    "# 第五题 猫\n",
    "有一只猫，有颜色color、有动作jump，如何用类来描述它呢? \n",
    "- 实例化一只黑猫，跳了2步。\n",
    "- 用ipynb文件记录一下你的python代码。\n",
    "- 提示:1.必须有init函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7cb476cf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "color=black, jump=2\n"
     ]
    }
   ],
   "source": [
    "class Cat:\n",
    "    def __init__(self, color, jump = 0):\n",
    "        self.color = color\n",
    "        self.jump = jump\n",
    "    def status(self):\n",
    "        print('color=%s, jump=%d' % (self.color, self.jump))\n",
    "\n",
    "        \n",
    "cat = Cat('black', 2)\n",
    "cat.status()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e173b61e",
   "metadata": {},
   "source": [
    "# 第六题 派生猫\n",
    "- 实现基类:猫，实现基类的方法:speak\n",
    "- 实现派生类:黑猫，重写基类的speak方法\n",
    "- 实例化一个黑猫对象，调用派生类和基类的speak方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ab91170d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I'm black cat\n",
      "I'm base cat\n"
     ]
    }
   ],
   "source": [
    "class Cat2:\n",
    "    def speak(self):\n",
    "        print('I\\'m base cat')\n",
    "        \n",
    "class BlackCat(Cat2):\n",
    "    def speak(self):\n",
    "        print('I\\'m black cat')\n",
    "\n",
    "black_cat = BlackCat()\n",
    "black_cat.speak()\n",
    "super(BlackCat, black_cat).speak()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6171afd3",
   "metadata": {},
   "source": [
    "# 第七题\n",
    "绘制一组散点图，颜色为蓝色\n",
    "- 纵坐标为40，20，50，70，10\n",
    "- 横坐标为10，20，40，60，100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "c30d3534",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "y = np.array([40, 20, 50, 70, 10])\n",
    "x = np.array([10, 20, 40, 60, 100])\n",
    "plt.plot(x, y, 'bo');"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89657470",
   "metadata": {},
   "source": [
    "# 第八题\n",
    "绘制一个蓝色曲线余弦函数的线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "2dcab32a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.linspace(-10, 10, 100)\n",
    "y = np.sin(x)\n",
    "plt.plot(x, y, 'b');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b0a3e985",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
